home *** CD-ROM | disk | FTP | other *** search
- Name
-
- SGIS_sharpen_texture
-
- Name Strings
-
- GL_SGIS_sharpen_texture
-
- Version
-
- $Date: 1996/04/02 00:08:41 $ $Revision: 1.2 $
-
- Number
-
- 22
-
- Dependencies
-
- EXT_texture is required
- EXT_texture3D affects the definition of this extension
- EXT_texture_object affects the definition of this extension
-
- Overview
-
- This extension introduces texture magnification filters that sharpen
- the resulting image by extrapolating from the level 1 image to the
- level 0 image. Sharpening can be enabled for all color channels, for
- the alpha channel only, or for the red, green, and blue channels only.
-
- New Procedures and Functions
-
- void SharpenTexFuncSGIS(enum target,
- sizei n,
- const float* points);
-
- void GetSharpenTexFuncSGIS(enum target,
- float* points);
-
- New Tokens
-
- Accepted by the <param> parameter of TexParameteri and TexParameterf,
- and by the <params> parameter of TexParameteriv and TexParameterfv, when
- their <pname> parameter is TEXTURE_MAG_FILTER:
-
- LINEAR_SHARPEN_SGIS
- LINEAR_SHARPEN_ALPHA_SGIS
- LINEAR_SHARPEN_COLOR_SGIS
-
- Accepted by the <pname> parameter of GetTexParameteriv and
- GetTexParameterfv:
-
- SHARPEN_TEXTURE_FUNC_POINTS_SGIS
-
- Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation)
-
- None
-
- Additions to Chapter 3 of the 1.0 Specification (Rasterization)
-
- GL Specification Table 3.7 is updated as follows:
-
- Name Type Legal Values
- ---- ---- ------------
- TEXTURE_WRAP_S integer CLAMP, REPEAT
- TEXTURE_WRAP_T integer CLAMP, REPEAT
- TEXTURE_WRAP_R_EXT integer CLAMP, REPEAT
- TEXTURE_MIN_FILTER integer NEAREST, LINEAR,
- NEAREST_MIPMAP_NEAREST,
- NEAREST_MIPMAP_LINEAR,
- LINEAR_MIPMAP_NEAREST,
- LINEAR_MIPMAP_LINEAR,
- FILTER4_SGIS
- TEXTURE_MAG_FILTER integer NEAREST, LINEAR,
- FILTER4_SGIS,
- LINEAR_DETAIL_SGIS,
- LINEAR_DETAIL_ALPHA_SGIS,
- LINEAR_DETAIL_COLOR_SGIS,
- LINEAR_SHARPEN_SGIS,
- LINEAR_SHARPEN_ALPHA_SGIS,
- LINEAR_SHARPEN_COLOR_SGIS
- TEXTURE_BORDER_COLOR 4 floats any 4 values in [0,1]
- DETAIL_TEXTURE_LEVEL_SGIS integer any non-negative integer
- DETAIL_TEXTURE_MODE_SGIS integer ADD, MODULATE
-
- Table 3.7: Texture parameters and their values.
-
- 3.8.2.2 Texture magnification with sharpening
-
- Three additional texture magnification filters are defined for texture
- magnification. These values, which are assigned to TEXTURE_MAG_FILTER,
- are LINEAR_SHARPEN_SGIS, LINEAR_SHARPEN_ALPHA_SGIS, and
- LINEAR_SHARPEN_COLOR_SGIS. All three filters sample the level 0
- texture array exactly as it would be sampled with filter mode LINEAR.
- If texture levels 0 and 1 are "complete", as described in the Mipmapping
- portion of Section 3.8.1 (Texture Minification) of the GL Specification,
- the level 1 array of the texture is also linearly sampled, just as though
- mipmap minification was being performed with LOD (the level of detail
- parameter) valued near 1.0. If levels 0 and 1 are not complete, it is
- as though the magnification texture filter was LINEAR. (Although
- querying the magnification filter value will return the value as
- specified.)
-
- The texture value computed from the level 0 array (T0) and the
- value computed from the level one array (T1) are combined to compute
- the final texture value (T):
-
- T' = ((1 + F(LOD)) * T0) - (F(LOD) * T1)
-
- / 0 T' < 0
- T = < T' 0 <= T' <= 1
- \ 1 T' > 1
-
- F is a function of the level-of-detail parameter LOD, which is
- represented by the Greek character lambda in the GL Specification.
-
- The function F of level-of-detail parameter LOD is specified by
- calling SharpenTexFuncSGIS with <target> set to TEXTURE_1D, TEXTURE_2D,
- or TEXTURE_3D_EXT, <points> pointing at an array of pairs of floating
- point values, and <n> set to the number of value pairs in <points>. The
- first value of each value pair in <points> specifies a value of LOD, and
- the second value of each value pair specifies the corresponding function
- value. The order in which the points are specified is not significant.
- The <n> value pairs in <points> completely specify the function,
- replacing any previous specification that may have existed. Since
- negative values of LOD correspond to magnification and positive values
- correspond to minification, the points should have negative values for
- LOD (though it is not an error to specify positive values).
-
- Function F is evaluated by sorting the value pairs specified by
- SharpenTexFuncSGIS by LOD value, then fitting a curve through these
- points. This curve may be linear between adjacent points, or it may be
- smoothed, but it will pass exactly through the points, limited only by
- the resolution of the implementation. The value pair with the lowest
- LOD value specifies the function value F for all values of LOD less than
- or equal to that pair's LOD. Likewise, the value pair with the greatest
- LOD value specifies the function value F for all values of LOD greater
- than or equal to that pair's LOD. F is undefined if two or more value
- pairs have the same LOD value.
-
- If the texture magnification filter is LINEAR_SHARPEN_SGIS, then both
- the color and the alpha components of T are computed as described
- in the equations above. If the filter is LINEAR_SHARPEN_COLOR_SGIS,
- then all components of T other than alpha are computed as described
- above, and the alpha component of T is computed as if the texture
- magnification filter were LINEAR. Finally, if the filter is
- LINEAR_SHARPEN_ALPHA_SGIS, the alpha component of T is computed as
- described in the equations above, and all other components of T
- are computed as if the texture magnification filter were LINEAR.
-
- Minification vs. Magnification
- ------------------------------
-
- If the magnification filter is given by LINEAR_SHARPEN_SGIS,
- LINEAR_SHARPEN_ALPHA_SGIS, or LINEAR_SHARPEN_COLOR_SGIS, and the
- minification filter is given by NEAREST_MIPMAP_NEAREST or
- LINEAR_MIPMAP_NEAREST, then c = 0.5. The parameter c is used to
- determine whether minification or magnification filtering is done,
- as described in Section 3.8.2 of the GL Specification (Texture
- Magnification).
-
- Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations
- and the Framebuffer)
-
- None
-
- Additions to Chapter 5 of the 1.0 Specification (Special Functions)
-
- GetSharpenTexFuncSGIS is not included in display lists.
-
- Additions to Chapter 6 of the 1.0 Specification (State and State Requests)
-
- The number of points in the sharpen texture function specification of
- a texture is queried by calling GetTexParameteriv or GetTexParameterfv
- with <target> set to the target of the desired texture and <pname> set
- to SHARPEN_TEXTURE_FUNC_POINTS_SGIS. The function
- GetSharpenTexFuncSGIS returns in <points> all of the points in the
- sharpen texture function of texture <target>.
-
- Additions to the GLX Specification
-
- None
-
- Dependencies on EXT_texture
-
- EXT_texture is required.
-
- Dependencies on EXT_texture3D
-
- If EXT_texture3D is not implemented, references in this specification
- to TEXTURE_3D_EXT are invalid, and should be ignored.
-
- Dependencies on EXT_texture_object
-
- If EXT_texture_object is implemented, the state values named
-
- SHARPEN_TEXTURE_FUNC_POINTS_SGIS
- <SHARPEN_TEXTURE_FUNC>
-
- are added to the state vector of each texture object. When an attribute
- set that includes texture information is popped, the bindings and
- enables are first restored to their pushed values, then the bound
- textures have their sharpen parameters restored to their pushed values.
-
- Errors
-
- INVALID_ENUM is generated if SharpenTexFuncSGIS or
- GetSharpenTexFuncSGIS parameter <target> is not TEXTURE_1D, TEXTURE_2D,
- or TEXTURE_3D_EXT.
-
- INVALID_VALUE is generated if SharpenTexFuncSGIS parameter <n> is
- negative.
-
- INVALID_OPERATION is generated if SharpenTexFuncSGIS or
- GetSharpenTexFuncSGIS is executed between execution of Begin and the
- corresponding execution to End.
-
- New State
-
- Get Value Get Command Type Initial Value Attribute
- --------- ----------- ---- ------------- ---------
- SHARPEN_TEXTURE_FUNC_POINTS_SGIS GetTexParameteriv n x Z+ 2 texture
- <SHARPEN_TEXTURE_FUNC> GetSharpenTexFuncSGIS n x m x R {0, 0}, {-4, 1} texture
-
- New Implementation Dependent State
-
- None
-